package com.quanyan.pay.web.request;

import com.quanyan.BaseRequest;
import com.quanyan.common.validation.AtLeastOneNotNull;
import com.quanyan.common.validation.base.Insert;
import com.quanyan.common.validation.base.Query;
import com.quanyan.common.validation.base.Update;

import javax.validation.constraints.NotNull;

/**
 * @author songzj
 * @date 16/5/30-20:41
 */
@AtLeastOneNotNull(groups = Query.class, fieldNames = {"id", "appId", "mchId", "openId"})
public class ReqWeichatAccount extends BaseRequest {

    private static final long serialVersionUID = 1546794428430500855L;

    @NotNull(groups = Update.class)
    private Integer id;

    @NotNull(groups = Insert.class)
    private String appId;

    @NotNull(groups = Insert.class)
    private String mchId;

    private String subMchId;

    @NotNull(groups = Insert.class)
    private String securityKey;

    @NotNull(groups = Insert.class)
    private String wxKey;

    @NotNull(groups = Insert.class)
    private byte[] certLocationPath;

    @NotNull(groups = Insert.class)
    private String certPassword;

    private String openId;

    private Byte status;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getMchId() {
        return mchId;
    }

    public void setMchId(String mchId) {
        this.mchId = mchId;
    }

    public String getSubMchId() {
        return subMchId;
    }

    public void setSubMchId(String subMchId) {
        this.subMchId = subMchId;
    }

    public String getSecurityKey() {
        return securityKey;
    }

    public void setSecurityKey(String securityKey) {
        this.securityKey = securityKey;
    }

    public String getWxKey() {
        return wxKey;
    }

    public void setWxKey(String wxKey) {
        this.wxKey = wxKey;
    }

    public void setCertLocationPath(byte[] certLocationPath) {
        this.certLocationPath = certLocationPath;
    }

    public byte[] getCertLocationPath() {
        return certLocationPath;
    }

    public String getCertPassword() {
        return certPassword;
    }

    public void setCertPassword(String certPassword) {
        this.certPassword = certPassword;
    }

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    public Byte getStatus() {
        return status;
    }

    public void setStatus(Byte status) {
        this.status = status;
    }
}
